'use strict'
import Vue from 'vue'

export default function treeToArray (data, expandAll, parent = null, level = null) {
  let tmp = []
  Array.from(data).forEach(function (record) {
    if (record._expanded === undefined) {
      Vue.set(record, '_expanded', expandAll)
    }

    if (record._show === undefined && !parent) {
      Vue.set(record, '_show', true)
    } else if (record._show === undefined) {
      Vue.set(record, '_show', false)
    }

    let _level = 1
    if (level !== undefined && level !== null) {
      _level = level + 1
    }
    Vue.set(record, '_level', _level)

    // 如果有父元素
    if (parent) {
      Vue.set(record, 'parent', parent)
    }

    tmp.push(record)

    if (record.children && record.children.length > 0) {
      const children = treeToArray(record.children, expandAll, record, _level)
      tmp = tmp.concat(children)
    }
  })
  return tmp
}
